import App from "./App.vue";
// import ElementPlus from "element-plus";
// import "element-plus/dist/index.css";
// import "element-plus/theme-chalk/dark/css-vars.css";
// import "./tailwind.css";
// import "element-plus/theme-chalk/dark/css-vars.css";
// import zhCn from "element-plus/dist/locale/zh-cn.mjs";

// 解决非被动事件监听警告，提升滚动性能
// import "default-passive-events";

let baseURL = "";
if (process.env.NODE_ENV === "production") {
  // #ifdef H5
  baseURL = "/api"; // 通过 Nginx 或 Web 服务器处理转发
  // #endif
  // #ifdef APP-PLUS || MP
  baseURL = "http://localhost:5500"; // 正式后端地址
  // #endif
} else {
  // #ifdef H5
  baseURL = "/api"; // 通过 Nginx 或 Web 服务器处理转发
  // #endif
  // #ifdef APP-PLUS || MP
  baseURL = "http://localhost:5500"; // 正式后端地址
  // #endif
}

// config 全局配置
uni.addInterceptor("request", {
  invoke(args) {
    // request 触发前拼接 url
    // args.url = baseURL + args.url.trim();
    args.url = args.url.trim();
    if (args.url.indexOf("?") === -1) {
      args.url += "?t=";
      args.url += new Date().getTime();
    }
  },
});

// #ifndef VUE3
// 用于在非 Vue 3 环境下执行后续代码
import Vue from "vue";

import "./uni.promisify.adaptor";
// 禁用生产环境下的提示信息
Vue.config.productionTip = false;

// 创建事件总线
const eventBus = new Vue();
Vue.prototype.$eventBus = eventBus;

Vue.prototype.$httpPrefix = "http://localhost:5500";
Vue.prototype.baseURL = baseURL;

App.mpType = "app";
const app = new Vue({
  ...App,
});
// app.use(ElementPlus);
// app.use(ElementPlus, {
//   locale: zhCn,
// });

app.$mount();
// #endif

// #ifdef VUE3
import { createSSRApp } from "vue";
export function createApp() {
  const app = createSSRApp(App);
  // app.use(ElementPlus);

  // Vue 3 事件总线
  const eventBus = {
    events: {},
    $on(event, callback) {
      if (!this.events[event]) this.events[event] = [];
      this.events[event].push(callback);
    },
    $emit(event, ...args) {
      if (this.events[event]) {
        this.events[event].forEach((callback) => callback(...args));
      }
    },
  };
  app.config.globalProperties.$eventBus = eventBus;
  app.config.globalProperties.$httpPrefix = "http://localhost:5500";
  app.config.globalProperties.baseURL = baseURL;

  return {
    app,
  };
}
// #endif
